package com.wanxi.education.service;

import com.wanxi.education.model.vo.role.RolePermissionVo;
import com.wanxi.education.model.vo.user.RoleVO;

import java.util.List;
import java.util.Set;

/**
 * @Author: Kang
 * @Date: 2021/9/27 9:35
 * @Description: 角色业务接口
 * @Version: 1.0
 */
public interface RoleService {
    /**
     * 通过用户ID查询所属角色
     * @param userId
     * @return
     */
    Set<RoleVO> findByUserId(Long userId);

    /**
     * 分页查询所有角色
     * @param pageNum
     * @param pageSize
     * @return
     */
    List<RoleVO> findPage(int pageNum, int pageSize);

    /**
     * 添加角色
     * @param roleVO 角色信息
     * @return
     */
    Boolean add(RoleVO roleVO);

    /**
     * 通过角色Id查询角色基本信息
     * @param roleId
     * @return
     */
    RoleVO findByRoleId(Long roleId);

    /**
     * 通过角色Id和基本信息修改角色信息
     * @param roleVO
     * @return
     */
    Boolean updateById(RoleVO roleVO);

    /**
     * 通过角色Id，逻辑删除角色 0 -> 1
     * @param roleId
     * @return
     */
    Boolean deleteByRoleId(Long roleId);


    void updatePermissionsById(RolePermissionVo rolePermissionVo);

    List<RoleVO> findAll();
}
